10 POKE 106,PEEK(106)-12›20 GOTO 1860›30 REM INITILIZE STARTING POSITIONS›40 X0=100:Y0=80›50 X1=150:Y1=160›60 VX0=0:VY0=0:VX1=0:VY1=0›70 M0FLAG=0:M1FLAG=0›80 REM PLAYER #0›90 POKE 53278,0:REM CLEAR COLLISION REGISTER›100 IF STRIG(0)=0 THEN 430›110 Z0=STICK(0)›120 IF Z0=15 THEN 230›130 REM UPDATE VELOCITY VECTORS›140 IF Z0=14 THEN VX0=0:VY0=-3›150 IF Z0=13 THEN VX0=0:VY0=3›160 IF Z0=10 THEN VX0=-2:VY0=-3›170 IF Z0=9 THEN VX0=-2:VY0=3›180 IF Z0=11 THEN VX0=-2:VY0=0›190 IF Z0=7 THEN VX0=2:VY0=0›200 IF Z0=6 THEN VX0=2:VY0=-3›210 IF Z0=5 THEN VX0=2:VY0=3›220 REM UPDATE POSITION PLAYER0›230 X0=X0+VX0:Y0=Y0+VY0›240 IF X0<46 THEN X0=46›250 IF X0>198 THEN X0=198›260 IF Y0<24 THEN Y0=24›270 IF Y0>216 THEN Y0=216›280 A=USR(1536,0,10,Y0OLD,Y0,X0)›290 Y0OLD=Y0›300 IF M0FLAG=0 THEN 780›310 REM UPDATE POSITION MISSILE 0›320 XM0=XM0+VXM0:YM0=YM0+VYM0›330 IF XM0<40 THEN 400›340 IF XM0>207 THEN 400›350 IF YM0<20 THEN 400›360 IF YM0>220 THEN 400›370 A=USR(1536,4,2,YM0OLD,YM0,XM0)›380 YM0OLD=YM0:GOTO 420›390 REM REMOVE MISSILE TO OFF SCREEN›400 M0FLAG=0›410 A=USR(1536,4,2,YM0OLD,YM0OLD,10)›420 GOTO 780›430 IF M0FLAG=1 THEN 590›440 Z0=STICK(0)›450 IF Z0=15 THEN 690›460 IF Z0=14 THEN VXM0=0:VYM0=-6›470 IF Z0=13 THEN VXM0=0:VYM0=6›480 IF Z0=10 THEN VXM0=-5:VYM0=-6›490 IF Z0=9 THEN VXM0=-5:VYM0=6›500 IF Z0=11 THEN VXM0=-5:VYM0=0›510 IF Z0=7 THEN VXM0=5:VYM0=0›520 IF Z0=6 THEN VXM0=5:VYM0=-6›530 IF Z0=5 THEN VXM0=5:VYM0=6›540 M0FLAG=1›550 XM0=X0+4:YM0=Y0+2›560 FOR I=15 TO 0 STEP -0.25›570 SOUND 0,10,0,I:NEXT I›580 REM UPDATE POSITION MISSILE 0›590 XM0=XM0+VXM0:YM0=YM0+VYM0›600 IF XM0<40 THEN 670›610 IF XM0>207 THEN 670›620 IF YM0<20 THEN 670›630 IF YM0>220 THEN 670›640 A=USR(1536,4,2,YM0OLD,YM0,XM0)›650 YM0OLD=YM0:GOTO 700›660 REM REMOVE MISSILE TO OFF SCREEN›670 M0FLAG=0›680 A=USR(1536,4,2,YM0OLD,YM0OLD,10)›690 REM UPDATE POSITION PLAYER0›700 X0=X0+VX0:Y0=Y0+VY0›710 IF X0<46 THEN X0=46›720 IF X0>198 THEN X0=198›730 IF Y0<24 THEN Y0=24›740 IF Y0>216 THEN Y0=216›750 A=USR(1536,0,10,Y0OLD,Y0,X0)›760 Y0OLD=Y0›770 REM PLAYER #1›780 IF STRIG(1)=0 THEN 1110›790 Z1=STICK(1)›800 IF Z1=15 THEN 910›810 REM UPDATE VELOCITY VECTORS›820 IF Z1=14 THEN VX1=0:VY1=-3›830 IF Z1=13 THEN VX1=0:VY1=3›840 IF Z1=10 THEN VX1=-2:VY1=-3›850 IF Z1=9 THEN VX1=-2:VY1=3›860 IF Z1=11 THEN VX1=2:VY1=0›870 IF Z1=7 THEN VX1=2:VY1=0›880 IF Z1=6 THEN VX1=2:VY1=-3›890 IF Z1=5 THEN VX1=2:VY1=3›900 REM UPDATE POSITION PLAYER1›910 X1=X1+VX1:Y1=Y1+VY1›920 IF X1<46 THEN X1=46›930 IF X1>198 THEN X1=198›940 IF Y1<24 THEN Y1=24›950 IF Y1>216 THEN Y1=216›960 A=USR(1536,1,10,Y1OLD,Y1,X1)›970 Y1OLD=Y1›980 REM UPDATE POSITION MISSILE 1›990 XM1=XM1+VXM1:YM1=YM1+VYM1›1000 IF XM1<40 THEN 1070›1010 IF XM1>207 THEN 1070›1020 IF YM1<20 THEN 1070›1030 IF YM1>220 THEN 1070›1040 A=USR(1536,5,2,YM10LD,YM1,XM1)›1050 YM1OLD=YM1:GOTO 1100›1060 REM REMOVE MISSILE TO OFF SCREEN›1070 M1FLAG=0›1080 A=USR(1536,5,2,YM1OLD,YM1OLD,10)›1090 IF M1FLAG=0 THEN 1470›1100 GOTO 1270›1110 IF M1FLAG=1 THEN 1270›1120 Z1=STICK(1)›1130 IF Z1=15 THEN 1380›1140 IF Z1=14 THEN VXM1=0:VYM1=-6›1150 IF Z1=13 THEN VXM1=0:VYM1=6›1160 IF Z1-10 THEN VXM1=-5:VYM1=-6›1170 IF Z1=9 THEN VXM1=-5:VYM1=0›1180 IF Z1=11 THEN VXM1=-5:VYM1=0›1190 IF Z1=7 THEN VXM1=5:VYM1=0›1200 IF Z1=6 THEN VXM1=5:VYM1=-6›1210 IF Z1=5 THEN VXM1=5:VYM1=6›1220 M1FLAG=1›1230 XM1=X1+4:YM1=Y1+2›1240 FOR I=15 TO 0 STEP -0.25›1250 SOUND 1,10,0,I:NEXT I›1260 REM UPDATE POSITION MISSILE 1›1270 XM1=XM1+VXM1:YM1=YM1+VYM1›1280 IF XM1<40 THEN 1350›1290 IF XM1>207 THEN 1350›1300 IF YM1<20 THEN 1350›1310 IF YM1>220 THEN 1350›1320 A=USR(1536,5,2,YM10LD,YM1,XM1)›1330 YM1OLD=YM1:GOTO 1370›1340 REM REMOVE MISSILE TO OFF SCREEN›1350 M1FLAG=0›1360 A=USR(1536,5,2,YM10LD,YM10LD,10)›1370 IF STRIG(1)=1 THEN 1470›1380 REM UPDATE POSITION PLAYER1›1390 X1=X1+VX1:Y1=Y1+VY1›1400 IF X1<46 THEN X1=46›1410 IF X1>198 THEN X1=198›1420 IF Y1<24 THEN Y1=24›1430 IF Y1>216 THEN Y1=216›1440 A=USR(1536,1,10,Y1OLD,Y1,X1)›1450 Y1OLD=Y1›1460 REM DETECT COLLISIONS BETWEEN SHIPS›1470 IF PEEK(53260)>0 THEN 1530›1480 REM DETECT MISSILE 0 COLLISION PLAYER 1›1490 IF PEEK(53256)=2 THEN 1750›1500 REM DETECT MISSILE 1 COLLISION PLAYER 0›1510 IF PEEK(53257)=1 THEN 1640›1520 GOTO 90›1530 REM REMOVE SHIPS$#0&1 IN A DUAL SHIP COLLISION›1540 X1=10:X0=10›1550 FOR I=15 TO 0 STEP -0.2›1560 SOUND 0,250,4,I:FOR W=1 TO 5:NEXT W›1570 POKE 704,148+INT(10-I*0.66)›1580 POKE 705,52+INT(10-I*0.66):NEXT I›1590 A=USR(1536,0,10,Y0OLD,Y0OLD,X0)›1600 A=USR(1536,1,10,Y1OLD,Y1OLD,X1)›1610 A=USR(1536,4,2,YM0OLD,YM0OLD,10)›1620 FOR DE=1 TO 200:NEXT DE›1630 GOTO 40›1640 REM REMOVE SHIP #0›1650 FOR I=15 TO 0 STEP -0.2›1660 SOUND 0,250,4,I:FOR W=1 TO 5:NEXT W›1670 POKE 704,148+INT(10-I*0.66):NEXT I›1680 X0=10›1690 A=USR(1536,0,10,Y0OLD,Y0OLD,X0)›1700 A=USR(1536,5,2,YM1OLD,YM1OLD,10)›1710 A=USR(1536,4,2,YM0OLD,YM0OLD,10)›1720 FOR DE=1 TO 200:NEXT DE›1730 POKE 704,152›1740 GOTO 40›1750 REM REMOVE SHIP #1›1760 FOR I=15 TO 0 STEP -0.2›1770 SOUND 0,250,4,I:FOR W=1 TO 5:NEXT W›1780 POKE 705,52+INT(10-1*0.66):NEXT I›1790 X1=10›1800 A=USR(1536,1,10,Y1OLD,Y1OLD,X1)›1810 A=USR(1536,4,2,YM0OLD,YM0OLD,10)›1820 A=USR(1536,5,2,YM10LD,YM10LD,10)›1830 FOR DE=1 TO 200:NEXT DE›1840 POKE 705,56›1850 GOTO 40›1860 CB=PEEK(106):CHRSET=CB*256›1870 PM=PEEK(106)+4:PMBASE=PM*256›1880 GRAPHICS 1+16›1890 REM POKE IN PM ROUTINE›1900 FOR I=0 TO 150:READ X:POKE 1536+I,X:NEXT I›1910 REM POKE IN PM CLEAR ROUTINE›1920 FOR I=0 TO 25:READ X:POKE 1696+I,X:NEXT I›1930 REM ACTIVATE P/M›1940 SETCOLOR 2,0,0›1950 POKE 559,62:REM SET DMACTL -SINGLE LINE›1960 POKE 53277,3:REM SET GRACTL -PLAYERS&MISSILES›1970 A=USR(1696,PMBASE)›1980 POKE 53256,0:POKE 53257,0:REM PLAYERS REGULAR WIDTH›1990 POKE 53260,0:REM MISSILES REGULAR WIDTH›2000 POKE 704,152:REM PLAYER0 BLUE GREEN LUM 8›2010 POKE 705,56:REM PLAYER1 RED ORANGE LUM 8›2020 POKE 54279,PM:REM TELL ANTIC PMBASE›2030 POKE 1686,PM:REM POKE HI BYTE PMBASE INTO SUBROUTINE›2040 REM READ PLAYER DATA INTO STORAGE AREA›2050 FOR I=0 TO 9›2060 READ VAL:POKE PMBASE+I,VAL:NEXT I›2070 FOR I=0 TO 9›2080 READ VAL:POKE PMBASE+64+I,VAL:NEXT I›2090 REM INITILAZATION 1ST TIME ONLY›2100 Y0OLD=80:Y1OLD=160:YM0OLD=10:YM1OLD=10›2110 GOTO 40›2120 REM PLAYER SUBROUTINE DATA›2130 DATA 104,162,0,104,104,157,145,6,232,224,5,208,246,173,149›2135 DATA 6,174,145,6,157,0,208,173,150,6›2140 DATA 133,213,24,105,4,133,207,173,145,6,201,4,176,47,170›2145 DATA 189,133,6,133,212,202,48,4,230,207›2150 DATA 208,249,173,147,6,133,206,169,0,168,145,206,200,204›2155 DATA 146,6,144,248,173,148,6,133,206,160,0›2160 DATA 177,212,145,206,200,204,146,6,144,246,96,56,233,4›2165 DATA 170,198,207,173,147,6,133,206,160,0,1›2170 DATA 206,61,137,6,145,206,200,204,146,6,144,243,173,148›2175 DATA 6,133,206,160,0,177,206,29,141,6,145›2180 DATA 206,200,204,146,6,144,243,96,0,64,128,192,252,243›2185 DATA 207,63,3,12,4.8,192,0,0,0,0,0,0›2190 REM CLEAR PM AREA ROUTINE DATA›2200 DATA 104,104,133,213,104,133,212,162,0,160,0,169,0,145›2205 DATA 212,200,208,251,230,213,232,224,8,144,240,96›2210 REM PLAYER DATA›2220 DATA 153,153,189,189,255,255,189,189,153,153›2230 DATA 153,153,189,189,255,255,189,189,153,153›